package server.container;

public class AlarmierteSchleife implements Comparable<AlarmierteSchleife> {

	private String alarmType = "";
	private String alarmKennung = "";
	private String ricText = "";
	private String status = "";
	private String einsatzart = "";

	public AlarmierteSchleife(String alarmType, String alarmKennung, String einsatzart,
			String ricText, String status) {

		this.alarmType = alarmType;
		this.alarmKennung = alarmKennung;
		this.einsatzart = einsatzart;
		this.ricText = ricText;
		this.status = status;
	}

	@Override
	public int compareTo(AlarmierteSchleife o) {
		if (this.alarmType.equals(o.getAlarmType())) {
			return 0;
		}
		if (getAlarmTypeID() > o.getAlarmTypeID()) {
			return -1;
		}
		return 1;
	}

	private int getAlarmTypeID() {

		if (alarmType.equals("fms")) {
			return 4;
		}
		if (alarmType.equals("pocasag")) {
			return 3;
		}
		if (alarmType.equals("5ton")) {
			return 2;
		}

		return 1;

	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((alarmKennung == null) ? 0 : alarmKennung.hashCode());
		result = prime * result + ((alarmType == null) ? 0 : alarmType.hashCode());
		result = prime * result + ((einsatzart == null) ? 0 : einsatzart.hashCode());
		result = prime * result + ((ricText == null) ? 0 : ricText.hashCode());
		result = prime * result + ((status == null) ? 0 : status.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		AlarmierteSchleife other = (AlarmierteSchleife) obj;
		if (alarmKennung == null) {
			if (other.alarmKennung != null)
				return false;
		} else if (!alarmKennung.equals(other.alarmKennung))
			return false;
		if (alarmType == null) {
			if (other.alarmType != null)
				return false;
		} else if (!alarmType.equals(other.alarmType))
			return false;
		if (einsatzart == null) {
			if (other.einsatzart != null)
				return false;
		} else if (!einsatzart.equals(other.einsatzart))
			return false;
		if (ricText == null) {
			if (other.ricText != null)
				return false;
		} else if (!ricText.equals(other.ricText))
			return false;
		if (status == null) {
			if (other.status != null)
				return false;
		} else if (!status.equals(other.status))
			return false;
		return true;
	}

	public String getAlarmType() {
		return alarmType;
	}

	public String getAlarmKennung() {
		return alarmKennung;
	}

	public String getRicText() {
		return ricText;
	}

	public String getStatus() {
		return status;
	}

	public String getEinsatzart() {
		return einsatzart;
	}

}
